package com.pb.wkflow.api.service;

import com.pb.infra.oth.entity.common.Result;
import com.pb.wkflow.api.entity.NextParticipantEntity;
import com.pb.wkflow.api.entity.ParticipantUserEntity;

import java.util.List;

/**
 * @author 苗益辉
 * @date 2022/9/22 9:36
 */
public interface ParticipantService {

    /**
     * 查询用户参与者列表
     * @param pageNum 页码
     * @param pageSize 页数
     * @param keyword 查询条件
     * @return Result
     */
    Result getUserList(Integer pageNum, Integer pageSize, String keyword);

    /**
     * 查询组织参与者列表
     * @return Result
     */
    Result getStructList();

    /**
     * 查询岗位参与者列表
     * @param pageNum 页码
     * @param pageSize 页数
     * @param postName 岗位名称
     * @return Result
     */
    Result getPostList(Integer pageNum, Integer pageSize, String postName);

    /**
     * 查询角色参与者列表
     * @param pageNum 页码
     * @param pageSize 页数
     * @param roleName 角色名称
     * @return Result
     */
    Result getRoleList(Integer pageNum, Integer pageSize, String roleName);

    /**
     * 获取下一节点参与者
     * @param procInstId 流程实例id
     * @return  List<ParticipantUserEntity>
     */
    List<NextParticipantEntity> findNextParticipant(String procInstId, List<String> applyTypes);
}
